8. Flutter, ModalRoute ile Sayfalar Arası Veri Aktarımı

您所在的位置:网站首页 flutter modalroute 8. Flutter, ModalRoute ile Sayfalar Arası Veri Aktarımı

8. Flutter, ModalRoute ile Sayfalar Arası Veri Aktarımı

2024-07-08 21:23| 来源: 网络整理| 查看: 265

8. Flutter, ModalRoute ile Sayfalar Arası Veri AktarımıCnrsbtogll

Cnrsbtogll

·

Follow

2 min read·Nov 20, 2021

--

Bu eğitimde ModalRoute kullanarak sayfalar arası veri aktarımı yapacağız.

Veri aktarımı için önceki yazımızda, isimlendirilmiş rotalarla sayfa geçişleri yaptırdığımız taslağı kullanacağız. Taslağımız bu şekildeydi:

Tüm bu kodların altına bir veri şablonu/modeli oluşturmak istiyorum. Verileri class olarak yazacağımız bu şablonla ileteceğiz. İsmi VeriModeli olsun. Bir de constructor/yapıcı metot oluşturuyoruz.

class VeriModeli {final String kullaniciAdi;final String sifre;VeriModeli({required this.kullaniciAdi, required this.sifre});}

GirişEkrani widget’ımda da aşağıdaki şekilde değişiklikler yaptım.

*Butonun üstüne iki tane TextFormField oluşturdum. TextField ile benzer şekilde kullanılan TextFormField widget’ını, kullanıcı kaydı/kullanıcı girişi gibi formlar oluştururken tercih ediyoruz.

*TextFormField’a girilen değerleri tutması için iki tane TextEditingController oluşturdum.

*Navigator.pushNamed’in arguments parametresini aktif ettim. TextEditingController ile aldığım değerleri oluşturduğum VeriModeli sınıfının içinde tanımladığım kullaniciAdi ve sifre değişkenlerine arguments parametresi ile verdim. Navigator.pushNamed çalıştığında artık TextFormField’a gireceğimiz bu değerler diğer ekrana iletilecek.

... arguments: VeriModeli(kullaniciAdi: t1.text, sifre: t2.text),...

Artık ilettiğimiz bu değerleri ikinci ekranda alabilmek ve gösterebilmek için, ProfilEkrani’na aşağıdaki eklemeleri yapıyorum:

Daha önce oluşturduğumuz VeriModeli tipinde bir değişken yazdım. İsmini iletilenArgumanlar koyuyorum. ModalRoute ile aşağıdaki şekilde, önceki ekrandan Navigator.pushNamed’in arguments parametresi ile buraya iletilen değerlere erişip, iletilenArgumanlar değişkenine atıyoruz.

final iletilenArgumanlar =ModalRoute.of(context)!.settings.arguments as VeriModeli;

Bu satırı context’e erişebilmesi için Widget build’in süslü parantezleri içine yazıyorum.

Daha sonra;

iletilenArgumanlar.kullaniciAdi

iletilenArgumanlar.sifre

diyerek bu değişkenin içindeki değerlere ulaşabiliyoruz. Bu değerleri de Text widget içerisinde kullanarak ekranımızda gösterdik.

class ProfilEkrani extends StatefulWidget {@override_ProfilEkraniState createState() => _ProfilEkraniState();}class _ProfilEkraniState extends State {cikisYap() {Navigator.pop(context);}@overrideWidget build(BuildContext context) {final iletilenArgumanlar =ModalRoute.of(context)!.settings.arguments as VeriModeli;return Scaffold(body: Container(child: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [ElevatedButton(onPressed: () {cikisYap();},child: Text("Çıkış Yap"),),Text("Kullanıcı Adınız: ${iletilenArgumanlar.kullaniciAdi}"),Text("Şifreniz: ${iletilenArgumanlar.sifre}"),],),),),);}}

Kodların tamamı şu şekilde olmalıdır.

Artık ekranlar arası veri aktarabiliyoruz.

Yazı dizisinin tamamını gör.

Sonraki makale -> 9. Firebase ile Flutter Birleştirme (Entegrasyon)-Android



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3